package com.ruoyi.function.service;



import com.ruoyi.function.domain.ServiceArea;
import com.ruoyi.function.domain.vo.ServiceAreaVO;

import java.util.List;
import java.util.Map;

public interface IServiceAreaService {
    /**
     * 根据区域编码获取区域信息
     * @param areaCode 区域编码
     * @return 区域信息
     */
    ServiceArea getAreaByCode(String areaCode);
    
    /**
     * 根据区域编码列表获取区域信息列表
     * @param areaCodes 区域编码列表
     * @return 区域信息列表
     */
    List<ServiceArea> getAreasByCodes(List<String> areaCodes);
    
    /**
     * 获取区域完整路径名称
     * @param areaCode 区域编码
     * @return 完整路径名称，如"北京市/北京市/朝阳区"
     */
    String getAreaFullPathName(String areaCode);
    
    /**
     * 批量获取区域完整路径名称
     * @param areaCodes 区域编码列表
     * @return 区域编码到完整路径名称的映射
     */
    Map<String, String> getAreaFullPathNames(List<String> areaCodes);
    
    /**
     * 获取区域树
     * @return 区域树VO
     */
    List<ServiceAreaVO> getAreaTree();
    
    /**
     * 获取指定父级的子区域
     * @param parentId 父级ID
     * @return 子区域列表
     */
    List<ServiceArea> getChildrenByParentId(Long parentId);
    
    /**
     * 获取指定层级的区域
     * @param level 层级
     * @return 区域列表
     */
    List<ServiceAreaVO> getAreasByLevel(Integer level);
    
    /**
     * 获取下级区域
     */
    List<ServiceAreaVO> getChildrenByParentCode(String parentCode);
} 